home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 21 / CU Amiga Magazine's Super CD-ROM 21 (1998)(EMAP Images)(GB)[!][issue 1998-04].iso / CUCD / Programming / Python-1.4 / Source / Amiga / Python_netlib / printfault.c < prev    next >
C/C++ Source or Header  |  1994-09-29  |  2KB  |  67 lines

  1. RCS_ID_C="$Id: printfault.c,v 4.2 1994/09/29 23:09:02 jraja Exp $";
  2. /* 
  3.  *      printfault.c - Print a socket error message (DOS)
  4.  *
  5.  *      Copyright © 1994 AmiTCP/IP Group, 
  6.  *                       Network Solutions Development Inc.
  7.  *                       All rights reserved.
  8.  */
  9.  
  10. /****** net.lib/PrintNetFault ************************************************
  11.  
  12.     NAME
  13.         PrintNetFault - socket error messages
  14.  
  15.     SYNOPSIS
  16.         PrintNetFault(code, banner)
  17.         void PrintNetFault(LONG, const UBYTE *)
  18.  
  19.     FUNCTION
  20.         The PrintNetFault() function finds the error message corresponding
  21.         to the code and writes it, followed by a newline, to the standard
  22.         error or Output() filehandle. If the argument string is non-NULL it
  23.         is preappended to the message string and separated from it by a
  24.         colon and space (`: '). If string is NULL only the error message
  25.         string is printed.
  26.  
  27.     NOTES
  28.         The PrintNetFault() function uses the DOS IO functions.
  29.  
  30.     SEE ALSO
  31.         strerror(), perror(), <netinclude:sys/errno.h>
  32.  
  33. ******************************************************************************
  34. */
  35.  
  36. #include <errno.h>
  37. #include <clib/netlib_protos.h>
  38.  
  39. #include <exec/execbase.h>
  40. extern struct ExecBase *SysBase;
  41.  
  42. #include <dos/dos.h>
  43. #include <dos/dosextens.h>
  44.  
  45. #if __SASC
  46. #include <proto/dos.h>
  47. #elif __GNUC__
  48. #include <inline/dos.h>
  49. #endif
  50.  
  51. void 
  52. PrintNetFault(LONG code, const UBYTE *banner)
  53. {
  54.   struct Process *p = (struct Process *)SysBase->ThisTask;
  55.   BPTR Stderr = p->pr_CES ? p->pr_CES : p->pr_COS;
  56.   const UBYTE *err = strerror(errno);
  57.  
  58.   if (banner != NULL) {
  59.     FPuts(Stderr, (STRPTR)banner);
  60.     FPuts(Stderr, ": ");
  61.   }
  62.   FPuts(Stderr, (STRPTR)err);
  63.   FPuts(Stderr, "\n");
  64.   Flush(Stderr);
  65. }
  66.  
  67.